Skip to main content

Key Features

High-level capabilities of Flow-Wing as a language:

Static Typing

Built-in types: int (32-bit by default), deci / deci32, str, bool, and more. Class types, bring for modules, var with inference, and containers with reassignment.

var x: int = 42
var name: str = "Flow-Wing"
var pi: deci = 3.14

Object-Oriented Programming

Classes, extends, init, methods. See Language Fundamentals → Classes and Advanced → Inheritance.

class Animal {
  var name: str
}

class Dog extends Animal {
  fun bark() -> nthg {
      print("Woof!")
  }
}

AOT and JIT

The AOT compiler produces a native executable you run directly. The JIT tool runs a .fg file in one step. Your build or package determines which binaries you get. See Flow-Wing CLI and Getting Started.

Heap Memory

The runtime uses Boehm GC for heap allocation — you never manage memory manually. No free needed.

var items: int[3] = [1, 2, 3]
items[1] = 10

Modules and Native Linking

bring loads Flow-Wing modules. The compiler CLI supports -L, -l, and on macOS --framework for native libraries.

bring sys
bring io

Developer Tooling

The Flow-Wing VS Code extension gives you in-editor support. Use formatter flags like -FMP and debug-style emits (--emit=…) for tokens, trees, and IR. Details are in Flow-Wing CLI.

Sample Programs

Small games and demos ship with the project for learning. They are examples, not a separate product or "engine."


For building the compiler from source, use Getting Started → Installation and the upstream repository. For writing this documentation, see WRITING.md in the FlowWing-Docs folder.